package org.huawei.utils;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import java.sql.Connection;
import java.sql.SQLException;

public class DatabaseUtil {
    // HikariCP 连接池实例
    private static HikariDataSource dataSource;

    // 静态代码块，在类加载时配置并初始化连接池
    static {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:mysql://localhost:3306/HomeworkSystem");
        config.setUsername("root");
        config.setPassword("123456");

        // 连接池的配置
        config.setMaximumPoolSize(10); // 设置最大连接数
        config.setMinimumIdle(5); // 最小空闲连接数
        config.setIdleTimeout(30000); // 空闲连接存活时间，单位毫秒
        config.setConnectionTimeout(30000); // 连接超时时间，单位毫秒
        config.setMaxLifetime(1800000); // 连接的最大生命周期，单位毫秒

        // 初始化数据源
        dataSource = new HikariDataSource(config);
    }

    // 获取数据库连接
    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

    // 关闭数据源，应用结束时可以调用
    public static void closeDataSource() {
        if (dataSource != null) {
            dataSource.close();
        }
    }
}
